package main

import (
	"go.uber.org/zap"
	"google.golang.org/grpc"
	"net"
	"user_srv/global"
	"user_srv/initialize"
	"user_srv/logic"
	"user_srv/user_proto"
)

//
//func main() {
//	initialize.InitConfig()
//	initialize.InitGetFreePort()
//	initialize.InitLogger()
//	initialize.InitMysql()
//	initialize.ConsulConfig()
//	global.ServerID = fmt.Sprintf("%s", uuid.NewV4())
//	zap.S().Info(global.ServerConfig)
//	g := grpc.NewServer()
//	user_proto.RegisterUserServer(g, &logic.Server{})
//	listen, err := net.Listen("tcp", fmt.Sprintf("%s:%d", global.ServerConfig.IP, global.ServerConfig.Port))
//	if err != nil {
//		zap.S().Panic(err)
//	}
//	go func() {
//		err := g.Serve(listen)
//		if err != nil {
//			zap.S().Panic(err)
//		}
//	}()
//	grpc_health_v1.RegisterHealthServer(g, health.NewServer())
//	quit := make(chan os.Signal)
//	signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
//	<-quit
//
//	config := api.DefaultConfig()
//	config.Address = fmt.Sprintf("%s:%d", global.ServerConfig.ConsulConfig.ConsulHost, global.ServerConfig.ConsulConfig.ConsulPort)
//	client, err := api.NewClient(config)
//	if err != nil {
//		zap.S().Panic(err)
//	}
//	err = client.Agent().ServiceDeregister(global.ServerID)
//	if err != nil {
//		fmt.Println("服务注销失败")
//		return
//	}
//	fmt.Println("服务注销成功")
//}

func main() {
	initialize.InitConfig()
	initialize.InitLogger()
	initialize.InitMysql()
	zap.S().Info(global.ServerConfig)
	g := grpc.NewServer()
	user_proto.RegisterUserServer(g, &logic.Server{})
	listen, err := net.Listen("tcp", "127.0.0.1:8888")
	if err != nil {
		zap.S().Panic(err)
	}
	err = g.Serve(listen)
	if err != nil {
		zap.S().Panic(err)
	}
	//go func() {
	//	err := g.Serve(listen)
	//	if err != nil {
	//		zap.S().Panic(err)
	//	}
	//}()
	//grpc_health_v1.RegisterHealthServer(g, health.NewServer())
	//quit := make(chan os.Signal)
	//signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
	//<-quit
	//
	//config := api.DefaultConfig()
	//config.Address = fmt.Sprintf("%s:%d", global.ServerConfig.ConsulConfig.ConsulHost, global.ServerConfig.ConsulConfig.ConsulPort)
	//client, err := api.NewClient(config)
	//if err != nil {
	//	zap.S().Panic(err)
	//}
	//err = client.Agent().ServiceDeregister(global.ServerID)
	//if err != nil {
	//	fmt.Println("服务注销失败")
	//	return
	//}
	//fmt.Println("服务注销成功")
}
